/*
 * 描述： <描述>
 * 修改人： rain
 * 修改时间： 2016年9月11日
 * 项目： rainhy-config
 */
package com.rainhy.config.manager.xml.database.entity;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.joda.time.DateTime;

/**
 * 数据库配置
 * 
 * @author rain
 * @version [版本号, 2016年9月11日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
@Entity
@Table(name = "core_config")
public class DatabaseConfig {
    /** 主键 */
    @Id
    @Column(length = 32)
    private String id;
    
    /** 最后修改时间 */
    @Temporal(TemporalType.TIMESTAMP)
    private Date lastModifiedDate;
    
    /** 状态:true可见 false不可见,默认可见 */
    private boolean viewAble = true;
    
    /** 配置属性是否可编辑:默认为可编辑 */
    private boolean editAble = true;
    
    /** 配置资源名 */
    @Column(length = 32, name = "configName")
    private String name;
    
    /** 关键字(所有配置的关键字都不能重复) */
    @Column(length = 64, name = "configKey")
    private String key;
    
    /** 实际值 */
    @Column(length = 255)
    private String value;
    
    /** 配置资源描述信息 */
    @Column(length = 255)
    private String description;
    
    /** @return 返回 description */
    public String getDescription() {
        return description;
    }
    
    /** @return 返回 editAble */
    public Boolean getEditAble() {
        return editAble;
    }
    
    /** @return 返回 id */
    public String getId() {
        return id;
    }
    
    /** @return 返回 key */
    public String getKey() {
        return key;
    }
    
    /** @return 返回 lastModifiedDate */
    public DateTime getLastModifiedDate() {
        return lastModifiedDate == null ? null : new DateTime(lastModifiedDate);
    }
    
    /** @return 返回 name */
    public String getName() {
        return name;
    }
    
    /** @return 返回 value */
    public String getValue() {
        return value;
    }
    
    /** @return 返回 viewAble */
    public Boolean getViewAble() {
        return viewAble;
    }
    
    /** @param 对 description 进行赋值 */
    public void setDescription(String description) {
        this.description = description;
    }
    
    /** @param 对 editAble 进行赋值 */
    public void setEditAble(Boolean editAble) {
        this.editAble = editAble;
    }
    
    /** @param 对 id 进行赋值 */
    public void setId(String id) {
        this.id = id;
    }
    
    /** @param 对 key 进行赋值 */
    public void setKey(String key) {
        this.key = key;
    }
    
    /** @param 对 lastModifiedDate 进行赋值 */
    public void setLastModifiedDate(final DateTime lastModifiedDate) {
        this.lastModifiedDate = lastModifiedDate == null ? null : lastModifiedDate.toDate();
    }
    
    /** @param 对 name 进行赋值 */
    public void setName(String name) {
        this.name = name;
    }
    
    /** @param 对 value 进行赋值 */
    public void setValue(String value) {
        this.value = value;
    }
    
    /** @param 对 viewAble 进行赋值 */
    public void setViewAble(Boolean viewAble) {
        this.viewAble = viewAble;
    }
    
}
